package com.example.supplychainbackend.service;

import com.example.supplychainbackend.controller.dto.blockchain.UploadInfo;
import com.example.supplychainbackend.controller.dto.design.OrderDto;
import com.example.supplychainbackend.controller.dto.enterprise.CertApplyProgressDto;
import com.example.supplychainbackend.controller.dto.enterprise.EnterpriseCertDto;
import com.example.supplychainbackend.controller.dto.enterprise.EnterpriseDto;
import com.example.supplychainbackend.controller.dto.sales.*;
import com.example.supplychainbackend.dao.sales.ContractDao;

import java.util.List;

public interface SalesService {
    String createCustomer(CustomerDetailDto customerDetailDto);

    CustomerDetailDto updateCustomer(String id, CustomerDetailDto customerDetailDto);

    CustomerDetailDto getCustomer(String id);

    List<CustomerDto> getAllCustomer(Long eid);

    Long deleteCustomer(String id);

    String createContract(ContractDto contractDto);

    ContractDto updateContract(String contractNumber, ContractDto customerDetailDto);

    ContractDto getContract(String contractNumber);

    List<ContractDto> getAllContract(Long eid);

    Long deleteContract(String contractNumber);

    UploadInfo uploadToChainContract(String contractNumber);

    String createOrder(OrderDetailDto form);

    OrderDetailDto updateOrder(String id, OrderDetailDto form);

    OrderDetailDto getOrder(String id);

    String deleteOrder(String id);

    UploadInfo uploadToChainOrder(String orderNumber);

    List<OrderDetailDto> getAllOrder();
    List<OrderListItemDto> listOrderItems();

    List<OrderListItemDto> listOrderItemsByEid(String eid);

    OrderDto getDesignOrder(String id);

    List<OrderDto> getAllDesignOrders();

    List<OrderDto> getAllDesignOrdersByEid(String eid);
}
